﻿using System;

namespace Google.Translates.WebService.Entities
{
    /// <summary>
    /// Target Database 在執行Sql Script時所需要的資訊
    /// 以Alias作為物件的檢索屬性
    /// 此物件資訊會映射到 Google Translate Engine Database 中, 
    /// 這樣的做法為了避免Database的相關資訊在Call WebService 的過程中作為參數傳遞
    /// </summary>
    public class DatabaseInfo
    {
        /// <summary>
        /// Guid for Unique the data row.
        /// 資料記錄唯一標識
        /// 當前屬性會映射到Database
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 執行DbUpdate任務的Target Database 別名
        /// 這個是用於WebService參數傳入的關鍵字,通過它獲取儲存在Google Translate Engine DataBase的DatabaseInfo相關資訊
        /// 當前屬性會映射到Database
        /// </summary>
        public string Alias { get; set; }
        /// <summary>
        /// Target Database 的資料庫連接字串
        /// 首先 Google Translate Engine需要具備各個 Target Database 的許可權
        /// 當前屬性會映射到Database
        /// </summary>
        public string ConnectionString { get; set; }
        /// <summary>
        /// Task的執行優先權,1為最高,數值更大,優先順序越低
        /// 當前屬性會映射到Database
        /// </summary>
        public int Priority { get; set; }
        /// <summary>
        /// Target Database 所在地區,所用的時區信息
        /// 範圍是-12到+12之間
        /// 當前屬性會映射到Database
        /// </summary>
        public int TimeZoneValue { get; set; }
        /// <summary>
        /// 可以執行時間範圍的起始值,如果為空,就為看作00:00:00
        /// 格式為HH:mm:ss
        /// 當前屬性會映射到Database
        /// </summary>
        public string RunableStartTimeString { get; set; }
        /// <summary>
        /// 可以執行時間,如果為空,就為看作23:59:59
        /// 格式為HH:mm:ss
        /// 如果RunableStartTimeString與RunableEndTimeString都為空,那就等同於"00:00:00 - 23:59:59"全天有效
        /// 當前屬性會映射到Database
        /// </summary>
        public string RunableEndTimeString { get; set; }

    }
}
